    #pragma GCC optimize(2)
    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <string>
    #include <map>
    #include <vector>

    using namespace std;
    using LL = long long;
    int n;
    int a, b, c, d;

    int main(){
        freopen("in.txt", "r", stdin);
        freopen("out.txt", "w", stdout);

        cin >> n;
        a = 1, b = n, c = 1, d = n;

        int l = a, r = b;
        int res1, res2;
        int num;
        while(l < r){
            int mid = l + r >> 1;
            cout << "?" << " " << l << " " << mid << " "<< c << " "  << d << "\n";
            cin >> num;
            if(num < mid - l + 1){
                r = mid;
            }else{
                l = mid + 1;
            }
        }

        res1 = l;

        l = c, r = d;
        while(l < r){
            int mid = l + r >> 1;
            cout << "?" << " " << a << " " << b << " " << l << " " << mid << '\n';
            cin >> num;
            if(num < mid - l + 1){
                r = mid;
            }else{
                l = mid + 1;
            }
        }

        res2 = l;

        cout << "!" << " " << res1 << " " << res2 << '\n';

        

        return 0;
    }